package com.xyy.service;

import com.xyy.dto.ActivityRegistrationDTO;
import com.xyy.vo.ActivityRegistrationVO;

import java.util.List;

/**
 * 活动报名Service接口
 */
public interface ActivityRegistrationService {
    
    /**
     * 报名活动
     * @param registrationDTO 报名信息
     * @param userId 用户ID
     * @return 报名结果
     */
    ActivityRegistrationVO registerActivity(ActivityRegistrationDTO registrationDTO, Long userId);
    
    /**
     * 取消报名
     * @param registrationId 报名ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean cancelRegistration(Long registrationId, Long userId);
    
    /**
     * 确认报名（管理员操作）
     * @param registrationId 报名ID
     * @param adminId 管理员ID
     * @return 是否成功
     */
    boolean confirmRegistration(Long registrationId, Long adminId);
    
    /**
     * 获取用户的报名列表
     * @param userId 用户ID
     * @return 报名列表
     */
    List<ActivityRegistrationVO> getUserRegistrations(Long userId);
    
    /**
     * 获取活动的报名列表（管理员查看）
     * @param activityId 活动ID
     * @param adminId 管理员ID
     * @return 报名列表
     */
    List<ActivityRegistrationVO> getActivityRegistrations(Long activityId, Long adminId);
    
    /**
     * 检查用户是否已为指定就诊人报名活动
     * @param activityId 活动ID
     * @param patientId 就诊人ID
     * @return 是否已报名
     */
    boolean isAlreadyRegistered(Long activityId, Long patientId);
} 